package com.carrental.api.cms.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.carrental.api.cms.domain.CmsCar;
import com.carrental.api.cms.domain.bo.CmsCarBo;
import com.carrental.api.cms.domain.vo.CmsCarVo;
import com.carrental.api.common.query.CommonQueryParam;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author 梁毅
 * @since 2022-03-02 23:26:10
 */
public interface ICmsCarService extends IService<CmsCar> {

    /**
     * 添加车辆
     * @param carPost 车辆参数
     * @return 是否成功
     */
    Boolean create(CmsCarBo carPost);

    /**
     * 逻辑删除
     * @param id id
     * @return 是否成功
     */
    Boolean delete(Long id);

    /**
     * 修改车辆信息
     * @param id id
     * @param carPost 车辆参数
     * @return 是否成功
     */
    Boolean update(Long id, CmsCarBo carPost);

    /**
     * 查看车辆信息
     * @param id 车辆参数
     * @return 车辆信息
     * */
    CmsCar detail(Long id);

    /**
     * 获取列表
     * @param commonQueryParam 查询参数
     * @return 分页
     */
    List<CmsCar> list(CommonQueryParam commonQueryParam);

    /**
     * 获取分页
     * @param commonQueryParam 查询参数
     * @return 分页
     */
    IPage<CmsCarVo> pageList(CommonQueryParam commonQueryParam);

    /**
     * 根据门店id获取车辆
     * @param storeId xx
     * @return xx
     */
    List<CmsCar> getCarListByStoreId(Long storeId,String carName);


    /**
     * 车辆出车
     * @param id 车辆id
     * @return xx
     */
    Boolean carLend(Long id);

    /**
     * 车辆归还
     * @param id 车辆id
     * @return xx
     */
    Boolean carReturn(Long id);

    /**
     * 下架车辆
     * @param id 车辆id
     * @return xx
     */
    Boolean carDisable(Long id);

}
